// CodeGear C++Builder
// Copyright (c) 1995, 2015 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'libswresample.pas' rev: 30.00 (Windows)

#ifndef LibswresampleHPP
#define LibswresampleHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <ffmpeg_types.hpp>
#include <libavutil.hpp>

//-- user supplied -----------------------------------------------------------

namespace Libswresample
{
//-- forward type declarations -----------------------------------------------
struct DECLSPEC_DRECORD SwrContext
{
};


//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM SwrDitherType : unsigned int { SWR_DITHER_NONE, SWR_DITHER_RECTANGULAR, SWR_DITHER_TRIANGULAR, SWR_DITHER_TRIANGULAR_HIGHPASS, SWR_DITHER_NS = 64, SWR_DITHER_NS_LIPSHITZ, SWR_DITHER_NS_F_WEIGHTED, SWR_DITHER_NS_MODIFIED_E_WEIGHTED, SWR_DITHER_NS_IMPROVED_E_WEIGHTED, SWR_DITHER_NS_SHIBATA, SWR_DITHER_NS_LOW_SHIBATA, SWR_DITHER_NS_HIGH_SHIBATA, SWR_DITHER_NB };

enum DECLSPEC_DENUM SwrEngine : unsigned int { SWR_ENGINE_SWR, SWR_ENGINE_SOXR, SWR_ENGINE_NB };

enum DECLSPEC_DENUM SwrFilterType : unsigned int { SWR_FILTER_TYPE_CUBIC, SWR_FILTER_TYPE_BLACKMAN_NUTTALL, SWR_FILTER_TYPE_KAISER };

typedef SwrContext *pSwrContext;

//-- var, const, procedure ---------------------------------------------------
static const System::Int8 LIBAVUTIL_VERSION_MAJOR = System::Int8(0x38);
#define LIBAVUTIL_VERSION_MAJOR_STR L"56"
static const System::Int8 LIBAVUTIL_VERSION_MINOR = System::Int8(0x1f);
static const System::Int8 LIBAVUTIL_VERSION_MICRO = System::Int8(0x64);
#define FFMPEG_VERSION L"4.2.2"
static const int LIBAVUTIL_VERSION_INT = int(0x381f64);
static const System::Int8 LIBSWSCALE_VERSION_MAJOR = System::Int8(0x5);
static const System::WideChar LIBSWSCALE_VERSION_MAJOR_STR = (System::WideChar)(0x35);
static const System::Int8 LIBSWSCALE_VERSION_MINOR = System::Int8(0x5);
static const System::Int8 LIBSWSCALE_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVCODEC_VERSION_MAJOR = System::Int8(0x3a);
#define LIBAVCODEC_VERSION_MAJOR_STR L"58"
static const System::Int8 LIBAVCODEC_VERSION_MINOR = System::Int8(0x36);
static const System::Int8 LIBAVCODEC_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVDEVICE_VERSION_MAJOR = System::Int8(0x3a);
#define LIBAVDEVICE_VERSION_MAJOR_STR L"58"
static const System::Int8 LIBAVDEVICE_VERSION_MINOR = System::Int8(0x8);
static const System::Int8 LIBAVDEVICE_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVFORMAT_VERSION_MAJOR = System::Int8(0x3a);
#define LIBAVFORMAT_VERSION_MAJOR_STR L"58"
static const System::Int8 LIBAVFORMAT_VERSION_MINOR = System::Int8(0x1d);
static const System::Int8 LIBAVFORMAT_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 FF_API_R_FRAME_RATE = System::Int8(0x1);
static const System::Int8 LIBPOSTPROC_VERSION_MAJOR = System::Int8(0x37);
#define LIBPOSTPROC_VERSION_MAJOR_STR L"55"
static const System::Int8 LIBPOSTPROC_VERSION_MINOR = System::Int8(0x5);
static const System::Int8 LIBPOSTPROC_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBSWRESAMPLE_VERSION_MAJOR = System::Int8(0x3);
static const System::WideChar LIBSWRESAMPLE_VERSION_MAJOR_STR = (System::WideChar)(0x33);
static const System::Int8 LIBSWRESAMPLE_VERSION_MINOR = System::Int8(0x5);
static const System::Int8 LIBSWRESAMPLE_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVFILTER_VERSION_MAJOR = System::Int8(0x7);
static const System::WideChar LIBAVFILTER_VERSION_MAJOR_STR = (System::WideChar)(0x37);
static const System::Int8 LIBAVFILTER_VERSION_MINOR = System::Int8(0x39);
static const System::Int8 LIBAVFILTER_VERSION_MICRO = System::Int8(0x64);
#define swscale_dll L"swscale-5.dll"
#define avutil_dll L"avutil-56.dll"
#define avcodec_dll L"avcodec-58.dll"
#define avdevice_dll L"avdevice-58.dll"
#define avformat_dll L"avformat-58.dll"
#define postproc_dll L"postproc-55.dll"
#define swresample_dll L"swresample-3.dll"
#define avfilter_dll L"avfilter-7.dll"
static const System::Int8 SWR_FLAG_RESAMPLE = System::Int8(0x1);
extern "C" Libavutil::pAVClass __cdecl swr_get_class(void);
extern "C" pSwrContext __cdecl swr_alloc(void);
extern "C" int __cdecl swr_init(pSwrContext s);
extern "C" int __cdecl swr_is_initialized(pSwrContext s);
extern "C" pSwrContext __cdecl swr_alloc_set_opts(pSwrContext s, __int64 out_ch_layout, Libavutil::AVSampleFormat out_sample_fmt, int out_sample_rate, __int64 in_ch_layout, Libavutil::AVSampleFormat in_sample_fmt, int in_sample_rate, int log_offset, void * log_ctx);
extern "C" void __cdecl swr_free(pSwrContext &s);
extern "C" void __cdecl swr_close(pSwrContext s);
extern "C" int __cdecl swr_convert(pSwrContext s, Ffmpeg_types::ppuint8_t _out, int out_count, const Ffmpeg_types::ppuint8_t _in, int in_count);
extern "C" __int64 __cdecl swr_next_pts(pSwrContext s, __int64 pts);
extern "C" int __cdecl swr_set_compensation(pSwrContext s, int sample_delta, int compensation_distance);
extern "C" int __cdecl swr_set_channel_mapping(pSwrContext s, const Ffmpeg_types::pint channel_map);
extern "C" int __cdecl swr_build_matrix(unsigned __int64 in_layout, unsigned __int64 out_layout, double center_mix_level, double surround_mix_level, double lfe_mix_level, double rematrix_maxval, double rematrix_volume, double &matrix, int stride, Libavutil::AVMatrixEncoding matrix_encoding, void * log_ctx);
extern "C" int __cdecl swr_set_matrix(pSwrContext s, const System::PDouble matrix, int stride);
extern "C" int __cdecl swr_drop_output(pSwrContext s, int count);
extern "C" int __cdecl swr_inject_silence(pSwrContext s, int count);
extern "C" __int64 __cdecl swr_get_delay(pSwrContext s, __int64 base);
extern "C" int __cdecl swr_get_out_samples(pSwrContext s, int in_samples);
extern "C" unsigned __cdecl swresample_version(void);
extern "C" char * __cdecl swresample_configuration(void);
extern "C" char * __cdecl swresample_license(void);
extern "C" int __cdecl swr_convert_frame(pSwrContext swr, Libavutil::pAVFrame output, const Libavutil::pAVFrame input);
extern "C" int __cdecl swr_config_frame(pSwrContext swr, const Libavutil::pAVFrame _out, const Libavutil::pAVFrame _in);
}	/* namespace Libswresample */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_LIBSWRESAMPLE)
using namespace Libswresample;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// LibswresampleHPP
